import axios from "axios";
import { BaseUrl, timeout } from "./http";
import { AxiosResponse, InternalAxiosRequestConfig } from "axios";
import { useUserStore } from "@/store/login";


// 生成实例
//     配置基础的路径
//     配置过期时间

// 访问环境变量参数
// console.log(11, import.meta.env);


const request = axios.create({
    baseURL: import.meta.env.VITE_Base_url,
    timeout: timeout
});

// 添加请求拦截器
request.interceptors.request.use((config: InternalAxiosRequestConfig) => {
    config.isUpload = true
    // 在请求的头部添加上token
    let { token } = useUserStore()
    config.headers.Authorization = token

    // 在发送请求之前做些什么
    return config;
}, error => {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
request.interceptors.response.use((response: AxiosResponse) => {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response;
}, error => {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});

// 导出实例
export default request